문제 설명
핵심 풀이 코드
Brute Force
#include <iostream>
#include
using namespace std;
class Solution{
public:
vector<int> twoSum(vector<int>& nums, int target) {
int find = 0;
for(int i = 0; i < num.size(); i++) {
find = target - nums[i];
for(int j = i+1; j < nums.size(); j++) {
if(find == nums[j]) {
return {i, j};
}
}
}
// debuging
return {-1, -1};
}
};
HashCode - 속도가 제일 빠른 코드
#include <iostream>
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> seen;
const int n = static_cast<int>(nums.size());
for(int i = 0; i < n; i++) {
const int complement = target - nums[i];
auto it = seen.find(complement);
if(it != seen.end()) {
return {it->second, i};
}
seen[nums[i]] = i;
}
return {-1, -1};
}
};
- 메모리 효율성이 제일 좋은 코드
Type/Paste Your Code